#ifndef _WATCHDOG_JH_H_
#define _WATCHDOG_JH_H_

#ifdef __cplusplus
extern "C"
{
#endif

#define TIME_UNIT_SECONDS 0     // 喂狗时间的单位, 秒
#define MAX_WDT_TIME (175)      // 硬件狗重启时间最大值, 175s

/**
 * @brief 加载驱动
 * @return 0:success -1:failure 
 */
int wdt_load_driver();

/**
 * @brief 卸载驱动
 * @return 0:success -1:failure 
 */
int wdt_unload_driver();

/**
 * @brief 启动硬件狗
 * @return 0:success -1:failure 
 */
int wdt_start();

/**
 * @brief 关闭硬件狗
 * @return 0:success -1:failure 
 */
int wdt_stop();

/**
 * @brief 喂狗
 * @param time 重启时间
 * @param unit 时间单位 0-seconds 1-minutes
 * @return 0:success -1:failure 
 */
int wdt_feed(int time, int unit);

/**
 * @brief 获取硬件狗的状态
 * @return -1:未启动 or >=0 剩余重启时间 
 */
int wdt_status();

#ifdef __cplusplus
}
#endif

#endif /* _WATCHDOG_JH_H_ */